package com.utooo.bid.service;

import com.utooo.bid.entity.BidDocumentAnalysis;
import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.spring.AiService;

import static com.utooo.bid.prompt.BidPromptTemplate.BID_BUSINESS_CATALOG_PROMPT_TEMPLATE;
import static com.utooo.bid.prompt.BidPromptTemplate.BID_SPECIFY_FIELDS_PROMPT_TEMPLATE;
import static com.utooo.bid.prompt.BidPromptTemplate.BID_SYSTEM_MESSAGE_PROMPT;
import static com.utooo.bid.prompt.BidPromptTemplate.BID_TECH_CATALOG_PROMPT_TEMPLATE;

/**
 * @Author CK
 * @Date: 2025−03-04 11:10
 * @Description: Assistant
 * @Copyright: 南京优通信息科技股份有限公司
 */
public interface Assistant {

    @SystemMessage(BID_SYSTEM_MESSAGE_PROMPT)
    String chat(String userMessage);

    @SystemMessage(BID_SYSTEM_MESSAGE_PROMPT)
    String chat(@MemoryId String memoryId, @UserMessage String message);

    @UserMessage(BID_BUSINESS_CATALOG_PROMPT_TEMPLATE)
    String generateBusiCatalog(@MemoryId String memoryId);

    @UserMessage(BID_TECH_CATALOG_PROMPT_TEMPLATE)
    String generateTechCatalog(@MemoryId String memoryId);

    @UserMessage(BID_SPECIFY_FIELDS_PROMPT_TEMPLATE)
    String extractBidAnalysisRecord(@MemoryId String memoryId);

}
